# -*- coding: utf-8 -*-
# standard
import os
import sys
import threading

# third

# local
_P_PATH =  os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
if _P_PATH not in sys.path:
    sys.path.append(_P_PATH)
from models.base_model import *
from models.celery_conf import *
from models.message_model import *
from models.event_model import *
from models.push_model import *


"""
@Title:   
@File: __init__.py
@Author: walle 2024年12日08日 10时20分56秒
@Version: 1.0.0
@Desc: 
"""


async def init_resources():
    # 初始化数据库连接
    await init_db_by_async()  # 初始化数据库连接 await 可以保证顺序的执行
    logger.info("异步数据库映射完成")


async def cleanup_resources():
    """
    清理资源
    :return:
    """
    ...
    logger.info("清理资源完成")


def init_db_default_values(cb: Callable | None = None):
    """
    创建数据库的默认值
    必须在数据库映射以后执行
    """
    ...
    logger.debug(f"初始化数据库默认值完成")
    logger.warning(f"注意检查 service 文件中的 WORKENV 设置是否正确")
    # 执行回调
    if cb:
        cb()
        logger.debug(f"执行初始化回调函数完成")
    


def start_init_default_thread(delay: int = 10, cb: Callable | None = None):
    """
    启动数据库默认值初始化
    :param delay: _description_, defaults to 10
    """
    if cb:
        func = partial(init_db_default_values, cb=cb)
    else:
        func = init_db_default_values
    timer = threading.Timer(delay, func)
    timer.start()



if __name__ == '__main__':
    pass